
const db = require('../config/db')

const request = require('request')

const jwt = require('jsonwebtoken') //引入jwt中间件

const bcrypt = require('bcryptjs') //导入加密操作的中间件
const crypto = require('crypto') //加密操作中间件
const { jwtSecretKey } = require('../config/jwtSecretKey');//引入自定义的秘钥文件

const checkSql = require('../config/checkSql')

// const sms = require('../utils/getmessage')
const {randomCode,sendCode} = require('../utils/mes')
// const jwt = require('../token/token')

//密码或验证码共同登录方法
// const loginMethod = (message, resp) => {
//     // Token  园区通票
//     // 1、生成没有密码的用户信息user
//     const user = { ...message, pwd: '' }  //去掉密码
//     console.log(user)
//     // 2、生成token
//     const token = jwt.sign(user, jwtSecretKey, { expiresIn: '24h' })
//     const timeSelectSql = 'select * from user u INNER JOIN health h on u.id_number = h.id_number where u.id_number = ?'
//     db.query(timeSelectSql, message.id_number, (err, result) => {
//         if (err) {
//             return resp.send({ code: 1, message: err.message })
//         }
        
        
       
//     })

    
// }
/**
 * 验证码登录的接口逻辑  
 * 判断 手机号登录的验证码是否正确
 */
//  exports.codeLoginController = (req, resp) => {
//     console.log("****登录接口****")
//     let { phonenumber, code } = req.body
//     console.log('验证码进行登录的接口',req.body)
//     const userSelectSql = 'select * from user where phone_number = ?'
//     db.query(userSelectSql, phonenumber, (err, result) => {
//         console.log("****执行SQL：查询用户名****")
//         console.log(result);
//         if (err) {
//             console.log('3',err);
//             return resp.send({ code: 1, message: err.message })
        
//         }
//         console.log('^^^^^^^^^^^^^^^^^^^^^^^^');
//         if (validate(phonenumber)) { //判断手机号是否发送过验证码
//             if (validateCode(phonenumber, code)) { // 判断验证码与手机号是否匹配
//                 console.log('判断手机号是否发送过验证码',validate);
//                 loginMethod(result[0], resp)
//                 verInfo = verInfo.filter((item) => {
//                     return item.phone !== phonenumber
//                 }); // 修改成功，立马清除这条验证信息
//             } else {
//                 resp.send({
//                     code: 1,
//                     messege: '验证码错误'
//                 })
//             }
//         } else {
//             resp.send({
//                 code: 1,
//                 messege: '未获取验证码'
//             })
//         }
//     })
// }
/***
 *  发送验证码
 */
exports.sendCode = (req, resp) => {
    console.log('********进入发送验证码接口************');
    
    let phonenumber = req.body.phone
    // let code = req.body.code
    let code =randomCode(6)
    sendCode(phonenumber, code,function (err, success) {
        console.log('********send*********');
        console.log(code);
        console.log(err);
        console.log(success);
    })
    // sendCode(phonenumber).then((result, code) => {
    //     console.log(req);
    //     console.log('******发送成功*******');
    //     console.log(result);
    //     console.log('*************************');
        
        
    // })
    
    // let code = randomCode(4) // 生成6位数字随机验证码
    // console.log(code);
    // sendCode(phonenumber, code, (success) => {
    //     console.log('*********进入获得接口页面');
    //     console.log(success);
    //     console.log(code);
    //     // console.log(data);
    //     if (success) {
    //         resp.send({
    //             code:0,
    //             msg:'短信验证码已成功发送'
    //         })
    //     } else {
    //         resp.send({
    //             code: 1,
    //             msg:'短信验证码发送失败'
    //         })
    //     }
    // })
}

/***
 * 验证码登录
 */
exports.codeLogin = (req, resp) => {
    console.log('**********进入验证码登录接口*********');
    console.log(req.body);
}
/**
 * 密码登录  √
 */
exports.pwdLoginController = (req, resp) => {
    console.log('*********用密码进行登录************');   
    console.log(req.body);
    // 接收从前端传来的值
    let params = {
        phonenumber: req.body.phonenumber,
        password:req.body.password
    }
    // let phonenumber = req.body.phonenumber
    // let password = req.body.password

    
    // 手机号密码验证
    // 查询用户手机号是否存在
    // let searchSql = "select * from user where phonenumber=?"
    db(checkSql.queryUserTel(params), (err,result) => {
        console.log('*************进入查询里面**********');
        // 手机号存在
        console.log(result);
        if (result.length > 0) {
            // 检查密码
            db(checkSql.queryUserPwd(params), (err,data) => {
                console.log('*********进入查询密码阶段*******');
                console.log(err);
                console.log(data);
                if (data.length > 0) {
                    // 手机号和密码都正确
                    resp.send({
                        code: 0,
                        data: {
                            success: true,
                            msg:'登录成功',
                            data:data
                        }
                    })
                } else {
                    // 密码错误
                    resp.send({
                        code: 1,
                        data: {
                            success: false,
                            msg:"密码错误"
                        }
                    })
                }
            })

        } else {
            // 不存在
            resp.send({
                code: 1,
                data: {
                    success: false,
                    msg:'手机号不存在，请去注册'
                }
            })
        }


        // console.log(data.length);
        // // console.log(err);
        // // const token = jwt.sign(user, jwtSecretKey, { expiresIn: '24h' })
        // // console.log(token);
        
        // console.log('***********************', data);
        // for (let i in data) {
        //     console.log(data[i].username);
            
        //     if (!data.length) {
        //         return resp.json({
        //             code: 1,
        //             message:'登录失败'
        //         })
        //     } else {
        //         if (data[i].password == password) {
        //             // const token = jwt.sign(phonenumber, password)
        //             // console.log('***********token***********');
        //             // console.log(token);
        //             // let Token = token.encrypt({ id: JSON.parse(DATA).userId }, '15d')
        //             // console.log('************token************');
        //             // console.log(Token);
        //             // let jwt = require('jsonwebtoken')
        //             // // 用户信息
        //             // let payload = { tel: '哈哈哈' }
        //             // // 口令
        //             // let secret = '噶阿哥'
        //             // 生成token
        //             // let token = jwt.sign(payload,secret)
        //             return resp.json({
        //                 code: 0,
        //                 message: {
        //                     msg: '登录成功',
        //                     data,
        //                     // token
        //                 }
        //             })
        //         }
        //         return resp.json({
        //             code: 1,
        //             message:'密码错误'
        //         })
        //     }
        // }
        

        // if (res.length > 0) {
        //     return resp.send({
        //         code: 0,
        //         data: {
                    
        //             message : '登录成功'
        //         }
        //     })
        // } else {
        //     return resp.send({
        //         code: 1,
        //         data: {
        //             message:'用户名/密码错误，请重新输入'
        //         }
        //     })
        // }
    })
    // db(userLoginSql, phonenumber, (err, result) => {
    //     console.log(err);
    //     console.log('***********************', result);

    //     // if (result.length > 0) {
    //     //     return resp.send({
    //     //         code: 0,
    //     //         data: {
                    
    //     //             message : '登录成功'
    //     //         }
    //     //     })
    //     // } else {
    //     //     return resp.send({
    //     //         code: 1,
    //     //         data: {
    //     //             message:'用户名/密码错误，请重新输入'
    //     //         }
    //     //     })
    //     // }
    // })

}

/**
 * 注册 
 */
// exports.clientRegister = (req, resp) => {
//     console.log('************注册***************');
//     const {phonenumber,username,password,idnumber,address} = req.body
//     console.log(req.body);
//     if (!phonenumber || !username || !password || !idnumber || !address) {
//         return resp.send({
//             code: 1,
//             message : '必填项不能为空'
//         })
//     }

//     // 身份证号码查重校验
//     const userSelectSql = 'select * from user where idnumber=?'
//     db(userSelectSql, idnumber, result=> { 
//         console.log('result************************', result);
//         // let len = data.len        
//         if (result.length > 0) {
//             return resp.send({
//                 code: 1,
//                 data: {
//                     message : '身份证已注册'
//                 } 
//             })
//         }
       
//         console.log('************');               
//         // 插入用户信息
//         // const userInsertSql = 'insert into user(username,password,phonenumber,idnumber,address,hire) values (?,?,?,?,?,1)'
//         let userInsertSql = 'insert into user set ?'
//         const idSelectSql = 'select * from user where idnumber=?'
//         let id
//         console.log('22',id);

       

        
        
       
//         console.log('44444444');
//     })
// }

/***
 * 根据手机号和身份查询
 */
exports.identityInfo = (req, resp) => {
    console.log('**********进入手机号和身份查询接口**********');
    console.log(req.body);
    let phonenumber = req.body.phonenumber
    let identity = req.body.identity
    let identitySql = `select * from user where phonenumber = '${phonenumber}' and identity = '${identity}'`
    db(identitySql, (err, data) => {
        console.log('**********进入查询数据库**********');
        console.log(err);
        console.log(data);
    })
}

/***
 * 获取车辆信息
 */

exports.getBicycleInfo = (req, resp) => {
    console.log('*****************获取电动车品牌数据 *******************');
    let sqlElec = 'select * from bicycle'
    db(sqlElec, null, data => {
        let len = data.length;
        console.log('************');
        console.log('len',len);        
        db(sqlElec, null, result => {
            console.log('result************************');            
            if (result.length > 0) {                
                resp.send({
                    code: 0,
                    data: {
                        status: 200,
                        result
                    }                   
                })
                console.log('成功获取用户信息', data);
                console.log('********获取logo****');
                
                
            } else {
                resp.send({
                    status: 500,
                    msg : '暂无数据'
                })
            }
        })
    })
    // console.log(sqlElec);

    

}


/***
 * 商品分类的接口
 * 
 */
exports.keywordSearch = (req, resp) => {
    console.log('***********商品分类接口*********');
    console.log(req.query);
    let type = req.query.type
    let brand = req.query.brand
    let grade = req.query.grade
    // if (price === 'lower') {
    //    price =  price > 0 && price < 500
    // }
    // if (type === 'short') {
    //     type = '短租'
    // } else {
    //     type = '长租'
    // }
    let keySql = `select * from bicycle where type = '${type}' and brand = '${brand}' and grade = '${grade}'`
    
    console.log('**********dddd',type);
    db(keySql, (err,result)=> {
        console.log('*********进入到分类sql里面*******');
        console.log(err);
        console.log(result);
        if (result.length > 0) {
            resp.send({
                code: 0,
                data: {
                    status: 200,
                    result
                }
            })
        } else {
            resp.send({
                status: 500,
                msg:'暂无数据'
            })
        }
    })
    
}

/***
 * 品牌分类接口
 */
exports.brandSearch = (req, resp) => {
    console.log('***********品牌分类接口*********');
    console.log(req.query);
    let brand = req.query.brand
    let brandSql = `select * from bicycle where brand = '${brand}'`
    db(brandSql,  (err, data) => {
        console.log('*********进入数据库*********');
        console.log(data);
        if (data.length > 0) {
            resp.send({
                code: 0,
                data: {
                    status: 200,
                    data
                }
            })
        } else {
            resp.send({
                status: 500,
                msg:'暂无数据'
            })
        }
    })

}